from multiprocessing import Process,Queue
import requests
url_list=[
    'https://www.cnblogs.com/Eva-J/articles/8244551.html#4140077',
    'https://www.douban.com/doulist/124633334/',
    'https://www.baidu.com',
    'https://gitee.com/old_boy_python_stack__22/teaching_plan/issues/IXSRZ',
]

def producer(i,url,q):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
    }
    ret=requests.get(url,headers=headers)
    q.put((i,ret.status_code))

if __name__ == '__main__':
    q=Queue()
    for index,url in enumerate(url_list):
        Process(target=producer,args=(index,url,q)).start()
    for i in range(4):#异步阻塞,并没有按照顺序返回结果，但是我要等结果又不知道谁的结果先来
        print(q.get())

















# 同步阻塞
    # 调用函数必须等待结果\cpu没工作 input sleep recv accept connect get
# 同步非阻塞
    # 调用函数必须等待结果\cpu工作 - 调用了一个高计算的函数 strip eval('1+2+3') sum max min sorted
# 异步阻塞
    # 调用函数不需要立即获取结果,而是继续做其他的事情,在获取结果的时候不知道先获取谁的,但是总之需要等(阻塞)
# 异步非阻塞
    #  调用函数不需要立即获取结果,也不需要等 start() terminate()


